package com.example.demo.config;

import org.springframework.web.servlet.HandlerInterceptor;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;

/**
 * Created with IntelliJ IDEA.
 * Description: 用户身份校验自定义拦截器实现第2遍
 */
public class LoginInterceptor2 implements HandlerInterceptor {
    /**
     * 此方法返回 boolean 类型，如果为 true，表示验证通过，进入业务代码
     * 如果为 false，表示验证未通过，进行处理
     */
    @Override
    public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
        // 仍然是通过 request 获取到 HttpSession 对象
        HttpSession session = request.getSession(false);
        // 假设 session 中存储了 userInfo 的数据，对 session 进行校验
        if(session != null && session.getAttribute("userInfo") != null) {
            // 用户登录信息校验通过
            return true;
        }
        // 如果用户信息校验未通过，跳转到登录界面 login.html
        // 或返回 403 / 401 没有权限码
        response.sendRedirect("/login.html");
        // response.setStatus(403);
        return false;
    }
}
